home *** CD-ROM | disk | FTP | other *** search
/ SuperHack / SuperHack CD.bin / CODING / GRAPHICS / GMSMTH01.ZIP / TANK.H < prev    next >
Encoding:
C/C++ Source or Header  |  1995-08-06  |  3.2 KB  |  147 lines

  1. #ifndef DEF_TANK_II
  2. #define DEF_TANK_II 1
  3. /*
  4.  
  5.     tank_ii.h
  6.  
  7.     Internet: alexad3@icebox.iceonline.com
  8.     Copyright 1994, September 26 by Alec Russell, ALL rights reserved
  9.  
  10.     Created - 1994/9/26
  11.  
  12.     History:
  13.         New file
  14.  
  15. */
  16.  
  17.  
  18. #include <g_def.h>
  19. #include <polygon.h>
  20.  
  21. #define MAX_PLAYERS 8
  22.  
  23. #define PATH_LEN 128
  24. #define DATA_DIR "\\DATA\\"
  25.  
  26. #define ED_PIC_SIZE 8428u
  27.  
  28. // std.pal color cycle info
  29. #define CYCLE_TIME 8
  30. #define NUM_BLUE 8
  31. #define NUM_RED 16
  32. #define START_BLUE 64
  33. #define START_RED 80
  34. #define START_ORANGE 72
  35. #define NUM_ORANGE 8
  36.  
  37.  
  38. // ---------------------------------------------------------------------
  39. // ---------------------------------------------------------------------
  40. // ---------------------------------------------------------------------
  41. // ---------------------------------------------------------------------
  42. // ---------------------------------------------------------------------
  43.  
  44. // generic draw stuff
  45.  
  46.  
  47. // ---------------------------------------------------------------------
  48. // ---------------------------------------------------------------------
  49. // ---------------------------------------------------------------------
  50. // ---------------------------------------------------------------------
  51. // ---------------------------------------------------------------------
  52.  
  53. #define NUM_XOBJS 30
  54. #define NUM_POLYS 8
  55. #define MAX_OBJS (NUM_XOBJS+NUM_POLYS)
  56.  
  57. #define NUM_GRD_TYPES 7
  58.  
  59. #define MAX_GZ -65536000l
  60.  
  61. enum DRAW_TYPES
  62.    {
  63.    D_DONT,
  64.    D_XSCALE,
  65.    D_POLY
  66.    };
  67.  
  68. typedef struct
  69.    {
  70.    short width, height;
  71.    BYTE far *bmap;
  72.    }
  73. grd_obj_t;
  74.  
  75. typedef struct
  76.    {
  77.    Point3 point;       // where it realy is
  78.    Fixedpoint vz, vx;      // z in view space
  79.    short width, height;// original width and height
  80.    short nw, nh;       // width height to draw at
  81.    short sx, sy;       // screen position to draw at
  82.    short draw;         // is it visible?
  83.    BYTE far *bmap;     // bit map pixels
  84.    }
  85. xscale_t;
  86.  
  87. typedef struct
  88.    {
  89.    short type;
  90.    Fixedpoint z;
  91.    void far *obj;
  92.    }
  93. qdraw_t;
  94.  
  95. typedef struct
  96.    {
  97.    short ViewAngle;
  98.    short PolySpeed;
  99.    short hd;
  100.    short rot_state;
  101.    short accn_state;
  102.    short done;
  103.    short num_qdraw;
  104.    qdraw_t qdraw[MAX_OBJS];
  105.    }
  106. play_logic_t;
  107.  
  108. typedef struct
  109.    {
  110.    BYTE far *sky_pbm;
  111.    BYTE far *shape;
  112.    BYTE far *grd_top;
  113.    BYTE far *grd_bot;
  114.    BYTE far *obj1;
  115.    grd_obj_t far *grd;
  116.    xscale_t far *xobjs;
  117.    }
  118. play_data_t;
  119.  
  120.  
  121.  
  122. // global vars ------------------------------------------
  123. extern play_logic_t pl;
  124. extern play_data_t play_data;
  125. extern char gb_path[PATH_LEN];   // holds path to data dir
  126. extern char gb_utilstr[1034];    // scratch string
  127. extern short player_num;
  128. extern char *mods[];
  129.  
  130.  
  131. // proto-types ------------------------------------------
  132. short play(void);
  133. void draw_strip(short x0, short y0, short x1, USHORT off,
  134.                 BYTE far *strip, USHORT hd);
  135. void draw_back(USHORT offs);
  136. void init_play_logic(void);
  137. void do_play_logic(void);
  138. void do_play_draw(void);
  139. void deinit_play(void);
  140. void init_play(void);
  141.  
  142. char *add_path(char *p);
  143. void color_cycle_all(void);
  144.  
  145. /* ------------------------------ EOF -------------------------------- */
  146. #endif
  147.